home *** CD-ROM | disk | FTP | other *** search
- QMouse V2.90
-
- Written by Dan Babcock
-
- Note: This program requires Kickstart 2.0 or higher. Tested with
- up to V40.62.
-
- I missed one program more than any other when I switched to
- Kickstart 2.0: QMouse, the venerable mouse-utility. I tried every
- other program of its type that I could find, but every utility I
- tried had quirks, lacked important features, and worst of all was
- HUGE. Discouraged (and annoyed), I decided to write my own.
- QMouse V2 (this program) is a completely new program, not an
- update to QMouse, but I couldn't think of a more fitting name;
- after all, my intent was to make a utility "like QMouse" - why
- not call it QMouse!? I hope this doesn't lead to too much
- confusion. On to the all-important feature list...
-
- FEATURES:
-
- * Automatic window activation after Amiga-M and Amiga-N (or the
- screen depth gadget): the previously active window will be made
- active. VERY useful!!! Does not poke screen structure like the
- original QMouse did (bad :-)).
-
- * Optional top-line blanking for 2320/3000 owners who wish to
- mask the "half line flicker" effect. Does not blank the border,
- just the top line.
-
- * System-friendly mouse blanking. Uses only the documented
- function SetPointer. Does not interfere with other sprites (e.g.
- JRComm's cursor).
-
- * Mouse acceleration/threshold
-
- * "PopCLI" feature. The CLI (actually any program may be
- executed) will have a sensible current directory, stack, and
- path.
-
- * Click-to-front and click-to-back. Click-to-Back will
- intelligently decide whether to perform a Window-To-Back or
- Screen-To-Back operation.
-
- * SunMouse (activates window under mouse pointer). There is a
- optional activation delay to avoid "jerky mouse" syndrome.
-
- * SunRMB (activate window under pointer when right mouse button
- is pressed)
-
- * SunKey (activate window under mouse pointer when you hit a key)
-
- * Screen blanking. No special effects; use another program for
- that stuff.
-
- * NoClick - turn off drive clicking for any combination of
- drives.
-
- * Can turn on the shell's *=#? feature (like "WildStar" etc.)
-
- * Option to automatically make the top screen the default public
- screen. This is the same function as PubChange by Steve Koren.
-
- * Option to completely disable DisplayBeep (some programs overuse
- it and it gets VERY annoying!)
-
- * Option to remap a few Northgate keys. (Note: Omnikey Ultra
- model)
-
- * Starts own background process (no need to RUN).
-
- * Written in assembly (efficient). Not a commodity.
-
- * Fully public domain. Source code included.
-
- * ONLY 4K!
-
-
- -------
- Changes
- -------
-
- V2.10
-
- Adds a couple simple options (e.g. noclick and wildstar), and
- some internal changes permit left-amiga-cursor mouse movements to
- work with mouse blanking enabled.
-
- Released on Fish 697.
-
- V2.20
-
- Older versions (pre-2.11) of QMouse had a serious memory-trashing
- bug. This is fixed thanks to Chris Schneider.
-
- The problem with the NoFlicker option and vertical overscan,
- reported by several people, has been fixed.
-
- The "PopCLI" feature now brings the Workbench screen to the
- front.
-
- Released on Fish 731.
-
- V2.21
-
- The NoFlicker option now works with Kickstart 3.0 (tested with
- 39.106 and 39.110).
-
- An informative requester is displayed when QMouse is unable to
- deinstall. (Previously it failed silently).
-
- A couple extra key remappings added to NorthGate option (numeric
- keyboard matches Amiga standard, important for VT100 emulation).
-
- V2.30
-
- Now works properly in superhires, 800x600, etc. The code actually
- shrunk when I fixed this because the offending code wasn't even
- needed.
-
- The problem of the permanently disappearing pointer, which was
- seen most often with reqtools-using programs (for example
- GadToolsBox), has been fixed. Nasty software that peeks at
- wd_Pointer can still get temporarily confused, but no serious
- harm will come of it.
-
- Click-to-front is disabled when left-Amiga is pressed. This
- avoids a conflict with Snap when double-clicking on some text in
- a background window.
-
- Task priority set to 20 (same as input.device). Previously it
- inherited the priority of the caller.
-
- Released on Fish 802.
-
- V2.40
-
- Added "NoWBenchToFront" and "PubChange" options.
-
- Automatic window activation (and PubChange) will now work with
- the screen depth gadget as well as Amiga-M/N.
-
- An error message ("Bad arguments") is printed if invalid options
- are given. (Previously it failed silently).
-
- V2.50
-
- Due to popular demand I added a delay option (SunMouseDelay) to
- the SunMouse option which provides for a delayed response
- (similar to Commodore's AutoPoint program, except the delay is
- adjustable). This makes it more usable on 68000 machines.
-
- Automatic window activation after using the screen depth gadget
- didn't quite work in 2.40. Fixed.
-
- Major addition/fix: The mouse blanking code is now fully updated
- for Kickstart 3.0, patching SetWindowPointerA and
- OpenWindowTagList. Much to my surprise these functions are
- already used by some commercial software (e.g. FinalCopy II) as
- well as Workbench and various 3.0 system software.
-
- Made some minor changes to some options (NoClick, Star, Verify)
- to be a bit more logical.
-
- V2.60
-
- Added "ImmBlank" option to allow immediate screen blanking using
- Left-Amiga+Right-Amiga.
-
- Tuned up the semaphore logic to be more robust.
-
- Fixed a minor but annoying bug in the automatic window activation
- code.
-
- V2.61
-
- Fixed a bug in the screen blanking that crept into 2.60.
-
- Added the "SunKey" option thanks to the code contribution of
- Jaba@desert.wlink.nl (sorry, I don't know your name!)
-
- V2.70
-
- Versions 2.50-2.61 had a rather disastrous bug in the quit code
- which often caused it to fail if running under a pre-3.0
- kickstart. Fixed.
-
- The "robust" semaphore logic of 2.60-2.61 turned out to be a
- disaster, causing more problems than it solved. :-) I've done a
- major rewrite in this version, moving ALL the intuition calls out
- of the input handler and also being careful to handle
- CloseWorkBench properly. Hopefully this will be the final and
- correct solution.
-
- Made still more improvements to the automatic window activation
- code. Now it remembers a screen's active window even if you shift
- to another (partially obscured) screen by clicking in a window on
- the other screen. (Previously the "remember" code was only
- triggered when there was a change in the top screen).
-
- Added "SunRMB" option. This one actually appears to be quite
- useful...I use it myself. :-)
-
- V2.80
-
- Added NoActivate and ScreenToBack options.
- Screen blanking is now completely system-friendly.
- Removed SunRMB option for now (sorry).
- Bug fixes!
-
- V2.90
-
- SunRMB option is back.
-
- Bug fixes.
-
- Technical improvements: Process priority is 21 again (19 caused
- major glitches); revamped semaphore logic (again); now calls
- LockIBase for every IntBase access; patches many fewer OS
- routines; "someone has patched the same OS routine" error display
- now includes the library name and routine offset.
-
- ------------
- Using QMouse
- ------------
-
- To see the parameter template type "Qmouse ?". Most likely it
- looks like gibberish to you, though, so I'll explain the options:
-
- (Please note: If you don't specify an option, the option is OFF.
- The default set of options is therefore all OFF, except for
- automatic window activation, which is ON by default).
-
- MBLANK (abbreviated M):
-
- This specifies the number of seconds of mouse inactivity
- before the mouse pointer is blanked. The mouse pointer is also
- blanked whenever you hit a key.
-
- Side note: Many people claim that it is impossible to blank the
- mouse in a "system-friendly" way. They're wrong. :-)
-
- Examples: m=3, mblank=9, M 10
-
- SBLANK (abbreviated S):
-
- Screen blanking - works same as mouse blanking basically.
-
- ImmBlank:
-
- Enable immediate (user-controlled) screen blanking. With this
- option enabled, you can hit Left-Amiga and Right-Amiga
- simultaneously to blank the screen.
-
- NOFLICKER (abbreviated N):
-
- This option will blank the top line of the display. (Only useful
- to 2320/3000 owners). This function inspects the system copper
- list, so it probably won't work in future Kickstarts.
-
- Note: If a screen with extreme vertical overscan is being
- displayed, QMouse will automatically turn this feature off. To
- get rid of the flicker simply drag the screen down a few lines.
-
- CMD:
-
- Specifies the command to execute when the user hits left-Amiga-
- ESCape. Default is "newcli". Use like this: CMD="newcli
- con:0/0/640/400". Important!!! The current directory, stack, and
- path of the newly created CLI will be that of the CLI where
- QMouse was originally executed. Therefore, place QMouse in your
- startup-sequence *after* STACK and PATH commands!!
-
- The Workbench screen will normally be brought to the front when
- executing the command. If you don't want this, use the
- "NoWBenchToFront" option.
-
- ACCELERATION (abbreviated A):
-
- Specifies mouse speed-up factor. QMouse uses the same
- acceleration/threshold algorithm as DMouse, by the way (I got
- used to the feel).
-
- Examples: acceleration 3, a=4, a 9
-
- THRESHOLD (abbreviated T):
-
- Specifies a threshold (minimum movement) required to apply
- acceleration factor. The default is zero. Example: T=1.
-
- CLICKTOBACK (abbreviated CTB):
-
- Specifying "ctb" or "clicktoback" will enable a feature whereby
- both mouse buttons being pressed simultaneously will send the
- window under the mouse pointer to the back, OR, if the mouse is
- not over a window, or if the window is a backdrop window, or if
- the window is the only non-backdrop window on its screen, then a
- screen-to-back operation will be performed instead.
-
- SCREENTOBACK (abbreviated STB):
-
- Similar to ClickToBack except it will only switch screens, not
- windows.
-
- CLICKTOFRONT (abbreviated CTF):
-
- This option specifies the number of mouse clicks required to
- bring the window under the mouse pointer to the front. Example:
- ctf=2.
-
- SUNMOUSE:
-
- Specifying "sunmouse" turns on the "Sun Mouse" feature.
-
- SunMouseDelay:
-
- This is a sub-option for SunMouse and specifies a delayed
- response to mouse movements. This allows for rapidly moving the
- mouse across windows with any jerkiness caused by activating
- windows that happen to be "in the way" of the pointer. This
- effect is most pronounced on slow (e.g. 68000-based) systems.
-
- This option takes a number argument that specifies the amount of
- delay. Typical values are 0 (no delay) and 1 (small delay).
- Example: SunMouseDelay=1
-
- SunRMB:
-
- This option causes the window under the mouse pointer to be
- automatically activated whenever you hit the right mouse button.
- This allows you to get at menus without a separate left-mouse-
- click step.
-
- SUNKEY:
-
- Specifying "SunKey" will cause the window under the mouse pointer
- to be activated (if it isn't already) when you press a key.
-
- NOBEEP:
-
- Completely disables DisplayBeep (the routine that flashes the
- screen).
-
- NORTHGATE:
-
- For Northgate Omnikey Ultra keyboard users only: remaps a couple
- keys. (Page Up -> Shift-Cursor-Up, etc). Sorry, if you want to
- change it you'll have to edit the source and reassemble.
-
- NOCLICK:
-
- Turns off drive clicking option in trackdisk, just like many 2.0-
- only 'noclick' programs. The argument to this option is a decimal
- number whose (4-bit) binary equivalent corresponds to what drives
- should receive the noclick treatment. For example, the number 3
- is "0011" in binary, and means drives 0 and 1 (but not 2 and 3)
- should be NoClick'ed. To turn off clicking on all drives, specify
- NOCLICK=15.
-
- Important: If you drive makes funny clicks after using NoClick,
- reboot immediately - you can damage a drive that doesn't support
- NoClick (which is why the OS defaults to the "clicking" mode).
-
- VERIFY:
-
- Turns on the floppy disk verify feature of Hackdisk (my
- trackdisk.device replacement). If you aren't using Hackdisk this
- option is useless.
-
- NOVERIFY:
-
- Turns off the floppy disk verify feature of Hackdisk (my
- trackdisk.device replacement). If you aren't using Hackdisk this
- option is useless.
-
- STAR:
-
- Turns on the *=#? shell feature, similar to programs called
- "WildStar" etc.
-
- PUBCHANGE:
-
- The PubChange option causes the top screen to be automatically
- made the default public screen (if the top screen is a public
- screen).
-
- NoWBenchToFront:
-
- This option causes the CMD option to NOT bring the Workbench
- screen to the front.
-
- NoActivate:
-
- Turns off the automatic window activation after a screen switch
- feature.
-
- QUIT:
-
- Completely de-installs QMouse. Note that executing QMouse when
- already installed will cause a QUIT to happen first. Due to
- extensive SetFunction-ing of the OS, this is considered unsafe.
- So please, use only for initial testing (i.e. deciding what
- features of QMouse you like and which you don't, etc). Once
- you're happy, put QMouse in your user-startup and don't mess with
- it.
-
- Important: If you run another program that SetFunctions some of
- the same routines (for example ARQ) you will not be able to QUIT
- or modify parameters. To avoid this run QMouse last.
-
- ----------
- The Author
- ----------
-
- I can be reached at d6b@ecl.psu.edu. My thanks to the many users
- who wrote me with suggestions and bug reports.
-
- Other fine freeware software products by me:
-
- FileMount: Utility to create a true partition within a file
- Hackdisk: A trackdisk.device replacement offering a verify option
-
-